REST-Fehlerbehebung
Bei einem Fehler können, je nach Art und Ort des Fehlers während der Verarbeitung, verschiedene HTTP-Statuscodes zurückgegeben werden. VoiceCheck nutzt für die Verarbeitung von Webservice-Anforderungen das Apache® CXF-Framework, und das Framework kann während der Verarbeitung Fehler wie „406 – Not Acceptable“ (Nicht annehmbar) oder „415 – Unsupported Media Type“ (Nicht unterstützter Medientyp) zurückgeben, bevor die VoiceCheck-Geschäftslogik erreicht ist.
Für Fehler, die aus der VoiceCheck-Geschäftslogik herrühren, gibt es nur zwei mögliche Statuscodes:
- 400 – Bad Request (Ungültige Anforderung): Der Client hat gegen eine Geschäftsregel oder Beschränkung verstoßen (in der Regel ungültige Daten). Das erneute Senden der unveränderten Meldung führt zum selben Fehler.
- 500 – Internal Server Error (Interner Serverfehler): Beim Verarbeiten der Anforderung ist ein interner Serverfehler aufgetreten. Das erneute Senden der Meldung KANN erfolgreich sein.
Fehler, die aus der VoiceCheck-Geschäftslogik herrühren, enthalten außerdem ein faultInfo-XML-Element, dem zusätzliche Informationen zum aufgetretenen Fehler entnommen werden können. Die Eigenschaften des faultInfo-Elements sind unten beschrieben.
SOAP-Fehlerbehebung
Für alle Fehler werden SOAP 1.1-Fehler zurückgegeben. Sie enthalten alle einen Fehlercode und eine Fehlerzeichenfolge gemäß SOAP 1.1. Bei den meisten Fehlern werden zwei der SOAP 1.1-Kernfehlercodes angegeben: "Client" und Server". VoiceCheck verwendet diese Codes generell in der in der SOAP 1.1-Spezifikation beschriebenen Weise.
Bei einigen Fehlern, die während der Authentifizierung auftreten können, kommen in WS-Security (Web Services Security) spezifizierte Fehlercodes zum Einsatz. Die Java-Webservices-APIs und -Implementierungen können andere Fehlercodes zurückgeben.
Auch wenn es nicht möglich ist, alle denkbaren Fehlercodes aufzulisten, gibt es aber allgemeine Regeln, die eine einheitliche Fehlerbehebung durch Webservices-Clients ermöglichen können:
- Mit Ausnahme von Server-Fehlercodes bedeutet die Ausgabe von Fehlercodes in der Regel, dass es nicht sinnvoll ist, die Meldung automatisch noch einmal zu senden. Die Codes werden gesendet, wenn der Client etwas falsch gemacht hat, bevor die Übertragung die Anwendungslogik auf dem Server erreicht. Beispiele hierfür sind Authentifizierungsfehler oder falsch aufgesetzte Meldungen.
- Lautet der Fehlercode „Server“ und stammt der Fehler aus der Anwendungsserverlogik, enthält er das SOAP 1.1-Fehlerdetailelement (faultInfo). Das genaue Format wird in der WSDL-Datei spezifiziert, aber es enthält die im folgenden Abschnitt genannten Informationen.
Element „faultInfo“
Wenn ein Fehler aus der VoiceCheck-Anwendungsserverlogik stammt, enthalten der REST- und der SOAP-Webservice dieselben Fehlerinformationen.
Die Hostserver-REST-Implementierung für das Senden von Zuweisungsergebnissen muss dieses faultInfo-Element verwenden, damit die Fehlermeldung in der VoiceCheck-Benutzeroberfläche angezeigt werden kann. Anderenfalls sieht der Benutzer eine allgemeine Meldung.
errorCode | Long | Numerischer Code, der für den Fehler steht Gültige Werte: 3000 = Internal Server Error (Interner Serverfehler) (eine Wiederholung kann zum Erfolg führen, muss aber nicht) 3001 = Bad Request (Ungültige Anforderung) (von einer automatischen Wiederholung der Anforderung wird abgeraten) |
message | Zeichenfolge | Für Menschen verständliche Meldung zur Erläuterung des Fehlers |